package com.sxt;
/**树形结构：树结构是一种非线性存储结构，存储的是具有“一对多”关系的数据元素的集合*/
/*树的相关术语:
* 结点（Node）：使用树结构存储的每一个数据元素都被称为“结点”  （一棵树由多个结点组成）
* 结点的度(Degree of Node)：某个结点所拥有的子树个数
* 树的深度（Degree of Tree）:树中结点的最大层次数
* 叶子结点（Leaf Node）：度为0的结点，也叫终端结点
* 分支结点（Branch Node）：度不为0的结点，也叫非终端结点或内部结点
* 孩子(Child)：也可称之为子树或子结点，表示当前结点下层的直接结点
* 双亲（Parent）：也可称这为父结点，表示当前结点的直接上层结点
* 根结点（Root Node）：没有双亲结点的结点，在一个树形结构中只有一个根结点
* 祖先（Ancestor）：从当前结点上层的所有结点
* 子孙（Descendant）：当前结点下的所有结点
* 兄弟（Brother）：同一双亲的孩子*/
public class TestTree00 {

    /*二叉树：实际问题抽象出来的数据结构往往是二叉树形式，即使是一般的树也能
    * 简单地转换为二叉树，而且二叉树的存储结构及其算法较为简单，因此二叉
    * 树显得特别重要。二叉树特点是每个结点最多只能有两棵子树（可以有一个子树）
    * ，且左右之分*/
    /*满二叉树：指除最后一层外，每一层的所有结点都有两个子结点*/
    /*完全二叉树：除最后一层可能不满以外，其他各层都达到该结点的最大数，最后
    * 一层如果不满，该层所有结点都全部靠左排*/

    /*二叉树遍历方式：
    * 前序遍历：根--左--右      中序遍历：左--根--右
    * 后序遍历：左--右--根      层序遍历：从上至下逐层遍历，从左向右*/

    /*作用：可以用于二叉树的结构以及遍历方式可以实现基于二叉树的元素排序*/
    /*12，9，5，8，11，20  使用中序遍历进行排序
    * 添加每一个元素时都要和当前节点当中的所包含的元素去做大小判断，
    * 如果新元素比当前树的节点当中所包含的元素小，则元素放在当前节点的
    * 左子树当中，如果新元素比当前树的节点当中所包含的元素大，
    * 则元素放在当前节点的右子树当中
    * 由根开始对比，一层一层对比*/
}
